/**
 *  生成 i18n
 * 使用 语言环境 后的对象
 * zh_CN -- { t("从这里开始") }
 */

import { useLocale } from '@/stores/modules/localeStore'
import { storeToRefs } from 'pinia'
import { createI18n } from 'vue-i18n'

// 设置 国际化参数
const createI18nOptions = async () => {
	// 获取语言环境
	const localeStore = useLocale()
	const { locale } = storeToRefs(localeStore)
	// 获取 message对象
	const defaultLocale = await import(`./lang/${locale.value}.js`)
	const message = defaultLocale.default?.message ?? {}

	return {
		// setup中 使用 t ，则需要将其设置为false
		legacy: false,
		// template 使用 $t
		// globalInjection: true,

		locale: locale.value,
		messages: {
			[locale.value]: message,
		},
	}
}
/*
  const messages = {
	en: {
		basic: {
			login: 'login',
		},
	},
}
*/

export let i18n
export const setupI18n = async app => {
	const options = await createI18nOptions()
	i18n = createI18n(options)
	app.use(i18n)
}
